package com.yixun.qfbao.hander;

import com.yixun.qfbao.api.service.AuditReportService;
import com.yixun.qfbao.api.service.CPReportService;
import com.yixun.qfbao.apidto.ResetAuditReqDto;
import com.yixun.qfbao.apidto.ResetAuditResDto;
import com.yixun.qfbao.apidto.ResetConfirmReqDto;
import com.yixun.qfbao.apidto.ResetConfirmResDto;
import com.yixun.qfbao.dto.base.BaseRequestDTO;
import com.yixun.qfbao.dto.base.BaseResponseDTO;
import com.yixun.qfbao.hander.base.CommonAbstractHander;
import com.yixun.qfbao.model.enums.SystemIdEnum;
import com.yixun.qfbao.util.WxAccessTokenCacheUtils;
import com.yixun.qfbao.util.exception.TServerException;
import com.yixun.qfbao.vo.ResetAuditReqVo;
import com.yixun.qfbao.vo.ResetConfirmReqVo;
import com.yixun.qfbao.xf.model.enums.ResultEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 交易状态重置
 * @author JHSong
 *
 */
@Service("resetConfirmHander")
public class ResetConfirmHander extends CommonAbstractHander {
	private static Logger logger= LoggerFactory.getLogger(ResetConfirmHander.class);

	@Autowired
	private AuditReportService auditReportService;
    @Autowired
    private WxAccessTokenCacheUtils wxAccessTokenCacheUtils;

	@Override
	public BaseResponseDTO doBusiness(BaseRequestDTO reqDto) {
		ResetConfirmReqVo req = (ResetConfirmReqVo)reqDto;
		ResetConfirmReqDto reqDto1 = req.getParams();
		BaseResponseDTO<ResetConfirmResDto> res = new BaseResponseDTO<>();
		ResetConfirmResDto resDto = new ResetConfirmResDto();
        try {
            //获取分销助手和案场助手的微信accessToken
			String agencyAccessToken = wxAccessTokenCacheUtils.getAccessToken(reqDto1.getCompanyUuid(), SystemIdEnum.AGENCY_h5.getCode(), reqDto1.getDomain());
			String assistantAccessToken = wxAccessTokenCacheUtils.getAccessToken(reqDto1.getCompanyUuid(), SystemIdEnum.ASSISTANT.getCode(), reqDto1.getDomain());
			resDto = auditReportService.resetConfirm(reqDto1,agencyAccessToken,assistantAccessToken);
		}catch(TServerException e){
			resDto.setResult(ResultEnum.FAIL.getNo());
			resDto.setResultMsg(e.getErrorMsg());
		} catch (Exception e) {
			logger.error("reset audit error: {}", e);
			resDto.setResult(ResultEnum.FAIL.getNo());
			resDto.setResultMsg("系统异常");
		}
		res.setResData(resDto);
		res.setResult(resDto.getResult());
		return res;
	}
	
}
